A user's device can be any type of computing and/or communications device such as, but not limited to, a cell phone (e.g., a smartphone), a tablet computer and a laptop computer. In some circumstances a user is enabled or encouraged to bring the user's device into the user's work place environment and to use the device in the work place. This situation can be referred to as BYOD (Bring Your Own Device). Of course this scenario does not necessarily mean that the user be physically present in the work place when using the device since one may be able to connect such devices into the work place environment from a remote location such as from the user's home or from a customer location.
Two somewhat related problem areas can arise in the domain of enterprise management of user devices, in particular BYOD type devices, and applications running on them. A first problem area relates to the fact that existing MDM (Mobile Device Management) solutions either require the user to submit their entire device to the enterprise management system to be configured with an enterprise application, or the user's device is configured to run a so-called hybrid application that runs in a specialized container for each user device platform.
The former solution is typically at odds with the desires of the user as the enterprise assumes complete control over the user's personal device and has the ability to perform deep system level operations, such as erasing all data from the device. This approach can thereby endanger any personal data that the user has stored on the device. This loss of control over the user's device, and the potential loss of data and confidentiality, would generally be objectionable to many users.
The latter solution, being hybrid, mainly uses web technologies in a custom platform container. With the web container the applications must be developed specifically for the applicable container rather than the device. The container normally abstracts device/operating system (OS) differences away, to the best of its ability, so that the application can be developed once but run ‘anywhere’. The container would offer the ability to build the application from web components (e.g., html plus javascript, etc.) to provide portability to the application code, but at the expense of the application not being a native application. The developer of the container needs to ensure that the container can work in multiple devices/OSs (generally platforms) while presenting a common interface. Such a hybrid application is not a native application and can lack the performance and the user interface (UI) look and behavior of a similar native application.
Enterprises generally desire to exert fine grain control of enterprise applications, such as controlling which users can run the application and/or what devices can be used with the application. Also the enterprise needs to be able to control the application should its install package be handed off to someone else, or in the event that the user no longer has a relationship with the enterprise (e.g., the user terminates his employment with the enterprise). In the latter case an enterprise that provides a “store” of applications, that it has developed for a certain family of user devices, can be legally obligated by its use of the specific device platform to ensure that such applications are limited only to enterprise use.